package com.atguigu.gmall.product;

import io.minio.BucketExistsArgs;
import io.minio.MakeBucketArgs;
import io.minio.MinioClient;
import io.minio.UploadObjectArgs;

/**
 * @author 李旭
 * @date 2022/2/11
 * @Description:
 *
 *   MinIO 上传文件的 Java的客户端
 */
public class MiniODemo {

    //桶的名称
    public static final String bucketName = "gmall210712";//商品桶

    public static void main(String[] args) throws Exception{
        //1：创建 Java客户端
 /*       MinioClient minioClient =
                MinioClient.builder()
                        .endpoint("https://play.min.io")//Minio的官方网端
                        .credentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG")
                        .build();*/
        MinioClient minioClient =
                MinioClient.builder()
                        .endpoint("http://192.168.200.134:9000")//Minio的官方网端
                        .credentials("minio", "minio123")
                        .build();
        //2:创建桶
        //2.1:校验桶是否存在
        boolean bucketExists = minioClient.
                bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());
        if(!bucketExists){
            //2.2:如果桶不存在 创建桶
            minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
            System.out.println("桶已经被创建了");
        }else{
            //2.3:如果桶存在了 不创建桶 可以直接使用此桶
            System.out.println("桶已经存在了，没有必须再创建了");
        }

        //3:将文件或图片上传到这个桶中
        //3.1:要求文件或图片的名称不能重复 日期+文件名的方案生成上传文件的名称
        String fileName = System.currentTimeMillis() + ".jpg";

        // Upload an JSON file.
        minioClient.uploadObject(
                UploadObjectArgs.builder()
                        .bucket(bucketName) //桶的名称
                        .object(fileName)//上传到桶中的文件叫什么名称
                        .filename("D:\\尚品汇商城\\资料\\图片\\三星\\0be87dc6ea450c0d.jpg")//是同学们要上传的文件
                        .build());

        //4：上传完成之后 访问路径
        //String path = "https://play.min.io" + "/" + bucketName + "/" + fileName;
        String path = "http://192.168.200.134:9000" + "/" + bucketName + "/" + fileName;
        System.out.println(path);


    }
}
